/**
 * 路由
 */
import Vue from 'vue'
import VueRouter from 'vue-router'

// 导入组件；Login_Home_Welcome：懒加载打包分组名称
// import Login from './components/Login'
const Login = () => import(/* webpackChunkName: "Login_Home_Welcome" */ './components/Login')
// import Home from './components/Home'
const Home = () => import(/* webpackChunkName: "Login_Home_Welcome" */ './components/Home')
// import Welcome from './components/Welcome'
const Welcome = () => import(/* webpackChunkName: "Login_Home_Welcome" */ './components/Welcome')

// import Users from './components/user/Users'
const Users = () => import(/* webpackChunkName: "Users_Rights_Roles" */ './components/user/Users')
// import Rights from './components/power/Rights'
const Rights = () => import(/* webpackChunkName: "Users_Rights_Roles" */ './components/power/Rights')
// import Roles from './components/power/Roles'
const Roles = () => import(/* webpackChunkName: "Users_Rights_Roles" */ './components/power/Roles')

// import Cate from './components/goods/Cate'
const Cate = () => import(/* webpackChunkName: "Cate_Params" */ './components/goods/Cate')
// import Params from './components/goods/Params'
const Params = () => import(/* webpackChunkName: "Cate_Params" */ './components/goods/Params')

// import GoodsList from './components/goods/List'
const GoodsList = () => import(/* webpackChunkName: "GoodsList_Add" */ './components/goods/List')
// import Add from './components/goods/Add'
const Add = () => import(/* webpackChunkName: "GoodsList_Add" */ './components/goods/Add')

// import Order from './components/order/Order'
const Order = () => import(/* webpackChunkName: "Order_Report" */ './components/order/Order')
// import Report from './components/report/Report'
const Report = () => import(/* webpackChunkName: "Order_Report" */ './components/report/Report')

Vue.use(VueRouter)

const routes = [
  // 路由重定向
  {
    path: '/',
    redirect: '/login'
  },
  {
    path: '/login',
    component: Login
  },
  {
    path: '/home',
    component: Home,
    redirect: '/welcome',
    children: [
      {
        path: '/welcome',
        component: Welcome
      },
      {
        path: '/users',
        component: Users
      },
      {
        path: '/rights',
        component: Rights
      },
      {
        path: '/roles',
        component: Roles
      },
      {
        path: '/categories',
        component: Cate
      },
      {
        path: '/params',
        component: Params
      },
      {
        path: '/goods',
        component: GoodsList
      },
      {
        path: '/goods/add',
        component: Add
      },
      {
        path: '/orders',
        component: Order
      },
      {
        path: '/reports',
        component: Report
      }
    ]
  }
]

const router = new VueRouter({
  routes
})

// 挂载路由导航守卫
router.beforeEach((to, from, next) => {
  // 挂载路由导航守卫,to表示将要访问的路径，from表示从哪里来，next 是一个函数，表示放行，是下一个要做的操作 next('/login')强制跳转login
  if (to.path === '/login') return next()
  // 获取 token
  const tokenStr = window.sessionStorage.getItem('token')
  // 不存在就强制跳转到登录页
  if (!tokenStr) return next('/login')
  next()
})

export default router
